<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

   
<h3>登录页面</h3>

<!-- 
	method ： 表单必须是post，shiro框架底层判断，只有post才有效
	action ：必须是认证失败的页面，Shiro单底层也会判断
	
	账号：默认必须叫做 username
	密码：默认必须叫做 password
	记住我：默认必须叫做 rememberMe
	
	为什么？
	
	答 ：因为用户提到登录这个请求到这账号密码记住我，就会被Shiro过滤器拦截到了 
	
	/**=authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter
	
	Shiro表单认证过滤器，底层会自动判断，当前请求是否是POST，并且是否有表单参数 username，password,rememberMe
	
	在下面方法中
	 protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
	
	
	如果有：Shiro就知道你是在做认证（登录）操作，就会做认证步骤，最终调用自定义Realm的认证操作
		认证成功：放行
		认证失败：跳转到认证失败页面，并且共享错误信息（账号密码错误两个异常）
			UnknownAccountException
			IncorrectCredentialsException
			
			错误信息封装到HttpServletRequest，名称：shiroLoginFailure
			
			
	
	没有: Shiro就会判断当前是否认证
		没有认证：跳转认证失败页面
		有认证：放行
	
	
	
 -->
<span style="color: red">${errorMsg}</span>
<form action="${pageContext.request.contextPath}/user/login.do" method="post">
	账号：<input type="text" name="uname"><br>
	密码：<input type="password" name="pwd"><br>
	记住我：<input type="checkbox" name="relMe"><br>
	<button type="submit">登录</button>
</form>